package yi.wuhenbot.dao;

import org.apache.ibatis.annotations.Mapper;
import yi.wuhenbot.entity.Fishing.FishingUser;

import java.util.Date;

/**
 * @author wuhen
 * @description 钓鱼用户映射器
 * @date 2023/12/15
 */
@Mapper
public interface FishingUserMapper {
    /**
     * 获取钓鱼用户
     * @param userId 用户id
     * @return 钓鱼用户
     */
    FishingUser getFishingUser(String userId);

    /**
     * 检测用户是否存在
     * @param userId 用户id
     * @return 是否存在
     */
    boolean checkUserExist(String userId);

    /**
     * 新增钓鱼用户
     * @param userId 钓鱼用户
     * @return 影响行数
     */
    int insertFishingUser(String userId);

    /**
     * 更新钓鱼用户
     * @param fishingUser 钓鱼用户
     * @return 影响行数
     */
    int updateFishingUser(FishingUser fishingUser);

    /**
     * 删除钓鱼用户
     * @param userId 用户id
     * @return 影响行数
     */
    int deleteFishingUser(String userId);


    /**
     * 获取所有钓鱼用户
     * @return 所有钓鱼用户
     */
    FishingUser getAllFishingUser();
    /**
     * 检查用户鱼竿是否存在
     * @param userId 用户id
     * @return 是否存在
     */
    boolean checkFishingRodExist(String userId);
    /**
     * 检查用户鱼饵是否大于0
     * @param userId 用户id
     * @return 是否存在
     */
    boolean checkFishingLineExist(String userId);
    /**
     * 更新鱼饵数量
     * @param userId 用户id
     * @param fishingLureNum 鱼饵数量
     * @return 影响行数
     */
    int updateFishingLine(String userId,int fishingLureNum,int lineNum);
    /**
     * 开始钓鱼：指令抛竿
     * @param userId 用户id
     * @return 影响行数
     */
    int startFishing(String userId, Date startTime, Date waitTime);

    /**
     * 结束钓鱼：指令收竿
     * @param userId 用户id
     * @return 影响行数
     */
    int endFishing(String userId);
    /**
     * 检查用户是否在钓鱼
     * @param userId 用户id
     * @return 是否在钓鱼
     */
    boolean checkIsFishing(String userId);

}
